(0) Obligation:

Runtime Complexity TRS:
The TRS R consists of the following rules:

a__fst(0, Z) → nil
a__fst(s(X), cons(Y, Z)) → cons(mark(Y), fst(X, Z))
a__from(X) → cons(mark(X), from(s(X)))
a__add(0, X) → mark(X)
a__add(s(X), Y) → s(add(X, Y))
a__len(nil) → 0
a__len(cons(X, Z)) → s(len(Z))
mark(fst(X1, X2)) → a__fst(mark(X1), mark(X2))
mark(from(X)) → a__from(mark(X))
mark(add(X1, X2)) → a__add(mark(X1), mark(X2))
mark(len(X)) → a__len(mark(X))
mark(0) → 0
mark(s(X)) → s(X)
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
a__fst(X1, X2) → fst(X1, X2)
a__from(X) → from(X)
a__add(X1, X2) → add(X1, X2)
a__len(X) → len(X)

Rewrite Strategy: FULL

(1) DecreasingLoopProof (EQUIVALENT transformation)

The following loop(s) give(s) rise to the lower bound Ω(2n):
The rewrite sequence
mark(fst(from(X28913_3), X2)) →+ a__fst(cons(mark(mark(X28913_3)), from(s(mark(X28913_3)))), mark(X2))
gives rise to a decreasing loop by considering the right hand sides subterm at position [0,0,0].
The pumping substitution is [X28913_3 / fst(from(X28913_3), X2)].
The result substitution is [ ].

The rewrite sequence
mark(fst(from(X28913_3), X2)) →+ a__fst(cons(mark(mark(X28913_3)), from(s(mark(X28913_3)))), mark(X2))
gives rise to a decreasing loop by considering the right hand sides subterm at position [0,1,0,0].
The pumping substitution is [X28913_3 / fst(from(X28913_3), X2)].
The result substitution is [ ].

(2) BOUNDS(2^n, INF)